package com.xuelang.pipeline.artifact.infrastructure.resource.dataobject;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 集群数据对象
 *
 * @author xiwen.zxg
 * @since 2024/5/21
 */
@TableName("IM_OT_DO_ARTIFACT_TOOL")
@ToString
@Data
public class ArtifactToolDO {
    /**
     * 主键，自增
     */
    @TableId(value = "ID", type = IdType.AUTO)
    private Long id;

    /**
     * 仓库UUID
     */
    private String uuid;
    /**
     * 仓库实例名称
     */
    private String instanceRepositoryName;

    /**
     * 仓库类型，可选值GENERIC/DOCKER/MAVEN/NPM，单选
     */
    private String artifactType;

    /**
     * 仓库编码，由小写字符、数字和_组成且至少1个字符并以字符开头，作为Habor实际公共项目名或者Nexus3实际公共仓库名
     */
    private String artifactCode;

    /**
     * 仓库名称，中文名称
     */
    private String artifactName;

    /**
     * 开放范围，PROJECT项目级-私有/PUBLIC团队级-公共，接口填写默认值PROJECT，单选
     */
    private String openScope;

    /**
     * MAVEN存储策略，可选值RELEASE/SNAPSHOT/MIXED，多选
     */
    private String storageStrategy;

    /**
     * 仓库描述
     */
    private String description;

    /**
     * 服务地址
     */
    private String serverAddress;

    /**
     * 链接用户名
     */
    private String userName;

    /**
     * 链接密码
     */
    private String password;

    /**
     * 关联项目编码
     */
    private String projectCode;

    /**
     * 关联项目名称
     */
    private String projectName;
    /**
     * 数据来源，单选项，制品工具入口为TOOL、制品仓库入口为ARTIFACT
     */
    private String dataSource;
    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String creatorId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人ID
     */
    @TableField(fill = FieldFill.UPDATE)
    private String updaterId;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 0否/删除、1是/使用，默认值为1
     */
    private Integer useFlag;

}
